#ifndef COMMONPAGE_H
#define COMMONPAGE_H
#include"musiclist.h"
#include <QMediaPlaylist>
#include <QWidget>
namespace Ui {
class CommonPage;
}
//页面类型枚举-----------------------------------------------------
enum PageType
 {
    LIKE_PAGE,      //收藏页面
    LOCAL_PAGE,     //本地音乐页面
    HISTORY_PAGE    //历史记录页面
};
class CommonPage : public QWidget
{
    Q_OBJECT
public:
    explicit CommonPage(QWidget *parent = nullptr);
    ~CommonPage();

    //页面配置----------------------------------------
    void setCommonPageUI(const QString &title, const QString &image);   //设置页面标题和图片
    void setImageLabel(QPixmap pixMap);     //设置图片与标题
    void reFresh(MusicList& musicList);     //刷新页面数据
    void setMusicListType(PageType pageType);   //设置当前页面
    //音乐数据操作---------------------------------------
    void addMusicToMusicPage(MusicList &musicList);   //添加音乐到页面中
    void addMusicToPlayer(MusicList &musicList, QMediaPlaylist *playList);    //关联播放器
    const QString& getMusicIdByIndex(int index) const;    //通过索引获得音乐ID



signals:
    //信号槽声明---------------------------------------------
    void updateLikeMusic(bool isLike, QString musicId);    //更新收藏状态
    void playMusicByIndex(CommonPage*, int);   //按索引播放
    void playAll(PageType pageType);       //播放全部


private:
    Ui::CommonPage *ui;
    QVector<QString> musicListOfPage;   //当前页面的音乐ID列表
    PageType pageType;      //页面类型标识

};

#endif // COMMONPAGE_H
